package com.project.mapper;

import com.project.bean.ClassBean;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface IClassMapper {
    /**
     * 查找所有班级
     * @return 班级信息列表，包括班级编号、班级名称、带班老师和开班时间
     */
    List<ClassBean> findAllClass();

    @Select("SELECT * FROM t_class WHERE c_name=#{name}")
    @ResultMap("classMap")
    ClassBean findByClassName(String name);
    /**
     * 添加班级
     * @param classBean 班级名称
     * @return 如果班级名称不重复，则添加班级并返回true，否则返回false
     */
    @Insert("INSERT INTO t_class(c_name,c_date,c_teacher)VALUES(#{name},#{classDate},#{teacher})")
    boolean addClass(ClassBean classBean);

    /**
     * 删除班级
     * 1.按班级id统计学生人数
     * 2.判断人数是否为0。为0则删除，并返回ture
     * @param classId 班级id
     * @return 如果班级的学生人数为0，则删除班级并返回true，否则返回false
     */
    @Insert("DELETE FROM t_class WHERE pk_classId=#{classId}")
    boolean deleteClass(Integer classId);

    @Select("SELECT COUNT(pk_stuId) FROM t_student WHERE fk_classId=#{id} GROUP BY fk_classId")
    Integer findByClassID(Integer id);

}
